package com.mindbox.viajes.db;

import java.sql.Connection;

import com.hp.hpl.jena.ontology.Individual;
import com.hp.hpl.jena.ontology.OntModel;
import com.hp.hpl.jena.rdf.model.Resource;
import com.hp.hpl.jena.util.iterator.ExtendedIterator;
import com.mindbox.viajes.util.ontologia.OntologiaMgr;

public class TestDb {

	public static void main(String[] args) {
		try {
			System.out.println("----prueba conexion BD");
			ConexionDAO dao = new ConexionDAO();
			Connection conn = dao.getConn();
			System.out.println(conn.getMetaData());
			System.out.println("----prueba conexion BD: OK! ");
			System.out.println("----pruebas Ontologias:: Carga Archivo");
			OntModel model = OntologiaMgr.cargarModeloArchivo("c:\\ont.owl");
			testModel(model);
			System.out.println("----prueba carga archivo: OK! ");
			
			System.out.println("----pruebas Ontologias:: Crear BD");
			OntologiaMgr.crearModeloBD("test", model);
			System.out.println("----prueba crear bd: OK! ");
			
			model.close();
			model = null;
			
			System.out.println("----pruebas Ontologias:: Cargar BD");
			model = OntologiaMgr.cargarModeloBD("test");
			testModel(model);
			System.out.println("----prueba Cargar bd: OK! ");
			
			
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	private static void testModel(OntModel model) {
		Individual ind = model.getIndividual("http://www.owl-ontologies.com/unnamed.owl#Luis");
	    if (ind == null) {
	    	System.out.println("Individual not found!");
	    } else {
	    	System.out.println("Individual: " + ind.getLocalName() + " belongs to:");
			for (ExtendedIterator i= ind.listRDFTypes(false); i.hasNext(); ) {
						Resource r = (Resource) i.next();
					    if (!r.isAnon()) System.out.println(" " + r.getLocalName());
					}
	    }
	}
	
}
